package edu.gatech.oad.antlab.person;
import java.util.*;

/**
 *  A simple class for person 2
 *  returns their name and a
 *  modified string 
 *
 * @author Bob
 * @version 1.1
 */
public class Person2 {
    /** Holds the persons real name */
    private String name;
	 	/**
	 * The constructor, takes in the persons
	 * name
	 * @param pname the person's real name
	 */
	 public Person2(String pname) {
      name = pname;
	 }
	/**
	 * This method should take the string
	 * input and return its characters in
	 * random order.
	 * given "gtg123b" it should return
	 * something like "g3tb1g2".
	 *
	 * @param input the string to be modified
	 * @return the modified string
	 */
   private String calc(String input) {
      String aName = "";
      int places[] = new int[input.length()];
      int counter = 0;
      for(int i = 0;i<input.length();i++){
         places[i] = counter;
         counter++;
      }
      shuffleArray(places);
      for(int j = 0;j<input.length();j++){
         aName = aName + input.charAt(places[j]);
      }
         return aName;
      }  
   static void shuffleArray(int[] ar){
      Random rnd = new Random();
	  for (int i = ar.length - 1; i > 0; i--){
         int index = rnd.nextInt(i + 1);
	     // Simple swap
	     int a = ar[index];
	     ar[index] = ar[i];
	     ar[i] = a;
       }
    }
 
	/**
	 * Return a string rep of this object
	 * that varies with an input string
	 *
	 * @param input the varying string
	 * @return the string representing the 
	 *         object
	 */
	public String toString(String input) {
	  return name + calc(input);
	}
}

